Dskyz (DAFE) Adaptive Regime - Quant Machine ProDskyz (DAFE) Adaptive Regime - Quant Machine Pro:
Buckle up for the Dskyz (DAFE) Adaptive Regime - Quant Machine Pro, is a strategy that’s your ultimate edge for conquering futures markets like ES, MES, NQ, and MNQ. This isn’t just another script—it’s a quant-grade powerhouse, crafted with precision to adapt to market regimes, deliver multi-factor signals, and protect your capital with futures-tuned risk management. With its shimmering DAFE visuals, dual dashboards, and glowing watermark, it turns your charts into a cyberpunk command center, making trading as thrilling as it is profitable.
Unlike generic scripts clogging up the space, the Adaptive Regime is a DAFE original, built from the ground up to tackle the chaos of futures trading. It identifies market regimes (Trending, Range, Volatile, Quiet) using ADX, Bollinger Bands, and HTF indicators, then fires trades based on a weighted scoring system that blends candlestick patterns, RSI, MACD, and more. Add in dynamic stops, trailing exits, and a 5% drawdown circuit breaker, and you’ve got a system that’s as safe as it is aggressive. Whether you’re a newbie or a prop desk pro, this strat’s your ticket to outsmarting the markets. Let’s break down every detail and see why it’s a must-have.
Why Traders Need This Strategy
Futures markets are a gauntlet—fast moves, volatility spikes (like the April 28, 2025 NQ 1k-point drop), and institutional traps that punish the unprepared. Meanwhile, platforms are flooded with low-effort scripts that recycle old ideas with zero innovation. The Adaptive Regime stands tall, offering:
Adaptive Intelligence: Detects market regimes (Trending, Range, Volatile, Quiet) to optimize signals, unlike one-size-fits-all scripts.
Multi-Factor Precision: Combines candlestick patterns, MA trends, RSI, MACD, volume, and HTF confirmation for high-probability trades.
Futures-Optimized Risk: Calculates position sizes based on $ risk (default: $300), with ATR or fixed stops/TPs tailored for ES/MES.
Bulletproof Safety: 5% daily drawdown circuit breaker and trailing stops keep your account intact, even in chaos.
DAFE Visual Mastery: Pulsing Bollinger Band fills, dynamic SL/TP lines, and dual dashboards (metrics + position) make signals crystal-clear and charts a work of art.
Original Craftsmanship: A DAFE creation, built with community passion, not a rehashed clone of generic code.
Traders need this because it’s a complete, adaptive system that blends quant smarts, user-friendly design, and DAFE flair. It’s your edge to trade with confidence, cut through market noise, and leave the copycats in the dust.
Strategy Components
1. Market Regime Detection
The strategy’s brain is its ability to classify market conditions into five regimes, ensuring signals match the environment.
How It Works:
Trending (Regime 1): ADX > 20, fast/slow EMA spread > 0.3x ATR, HTF RSI > 50 or MACD bullish (htf_trend_bull/bear).
Range (Regime 2): ADX < 25, price range < 3% of close, no HTF trend.
Volatile (Regime 3): BB width > 1.5x avg, ATR > 1.2x avg, HTF RSI overbought/oversold.
Quiet (Regime 4): BB width < 0.8x avg, ATR < 0.9x avg.
Other (Regime 5): Default for unclear conditions.
Indicators: ADX (14), BB width (20), ATR (14, 50-bar SMA), HTF RSI (14, daily default), HTF MACD (12,26,9).
Why It’s Brilliant:
Regime detection adapts signals to market context, boosting win rates in trending or volatile conditions.
HTF RSI/MACD add a big-picture filter, rare in basic scripts.
Visualized via gradient background (green for Trending, orange for Range, red for Volatile, gray for Quiet, navy for Other).
2. Multi-Factor Signal Scoring
Entries are driven by a weighted scoring system that combines candlestick patterns, trend, momentum, and volume for robust signals.
Candlestick Patterns:
Bullish: Engulfing (0.5), hammer (0.4 in Range, 0.2 else), morning star (0.2), piercing (0.2), double bottom (0.3 in Volatile, 0.15 else). Must be near support (low ≤ 1.01x 20-bar low) with volume spike (>1.5x 20-bar avg).
Bearish: Engulfing (0.5), shooting star (0.4 in Range, 0.2 else), evening star (0.2), dark cloud (0.2), double top (0.3 in Volatile, 0.15 else). Must be near resistance (high ≥ 0.99x 20-bar high) with volume spike.
Logic: Patterns are weighted higher in specific regimes (e.g., hammer in Range, double bottom in Volatile).
Additional Factors:
Trend: Fast EMA (20) > slow EMA (50) + 0.5x ATR (trend_bull, +0.2); opposite for trend_bear.
RSI: RSI (14) < 30 (rsi_bull, +0.15); > 70 (rsi_bear, +0.15).
MACD: MACD line > signal (12,26,9, macd_bull, +0.15); opposite for macd_bear.
Volume: ATR > 1.2x 50-bar avg (vol_expansion, +0.1).
HTF Confirmation: HTF RSI < 70 and MACD bullish (htf_bull_confirm, +0.2); RSI > 30 and MACD bearish (htf_bear_confirm, +0.2).
Scoring:
bull_score = sum of bullish factors; bear_score = sum of bearish. Entry requires score ≥ 1.0.
Example: Bullish engulfing (0.5) + trend_bull (0.2) + rsi_bull (0.15) + htf_bull_confirm (0.2) = 1.05, triggers long.
Why It’s Brilliant:
Multi-factor scoring ensures signals are confirmed by multiple market dynamics, reducing false positives.
Regime-specific weights make patterns more relevant (e.g., hammers shine in Range markets).
HTF confirmation aligns with the big picture, a quant edge over simplistic scripts.
3. Futures-Tuned Risk Management
The risk system is built for futures, calculating position sizes based on $ risk and offering flexible stops/TPs.
Position Sizing:
Logic: Risk per trade (default: $300) ÷ (stop distance in points * point value) = contracts, capped at max_contracts (default: 5). Point value = tick value (e.g., $12.5 for ES) * ticks per point (4) * contract multiplier (1 for ES, 0.1 for MES).
Example: $300 risk, 8-point stop, ES ($50/point) → 0.75 contracts, rounded to 1.
Impact: Precise sizing prevents over-leverage, critical for micro contracts like MES.
Stops and Take-Profits:
Fixed: Default stop = 8 points, TP = 16 points (2:1 reward/risk).
ATR-Based: Stop = 1.5x ATR (default), TP = 3x ATR, enabled via use_atr_for_stops.
Logic: Stops set at swing low/high ± stop distance; TPs at 2x stop distance from entry.
Impact: ATR stops adapt to volatility, while fixed stops suit stable markets.
Trailing Stops:
Logic: Activates at 50% of TP distance. Trails at close ± 1.5x ATR (atr_multiplier). Longs: max(trail_stop_long, close - ATR * 1.5); shorts: min(trail_stop_short, close + ATR * 1.5).
Impact: Locks in profits during trends, a game-changer in volatile sessions.
Circuit Breaker:
Logic: Pauses trading if daily drawdown > 5% (daily_drawdown = (max_equity - equity) / max_equity).
Impact: Protects capital during black swan events (e.g., April 27, 2025 ES slippage).
Why It’s Brilliant:
Futures-specific inputs (tick value, multiplier) make it plug-and-play for ES/MES.
Trailing stops and circuit breaker add pro-level safety, rare in off-the-shelf scripts.
Flexible stops (ATR or fixed) suit different trading styles.
4. Trade Entry and Exit Logic
Entries and exits are precise, driven by bull_score/bear_score and protected by drawdown checks.
Entry Conditions:
Long: bull_score ≥ 1.0, no position (position_size <= 0), drawdown < 5% (not pause_trading). Calculates contracts, sets stop at swing low - stop points, TP at 2x stop distance.
Short: bear_score ≥ 1.0, position_size >= 0, drawdown < 5%. Stop at swing high + stop points, TP at 2x stop distance.
Logic: Tracks entry_regime for PNL arrays. Closes opposite positions before entering.
Exit Conditions:
Stop-Loss/Take-Profit: Hits stop or TP (strategy.exit).
Trailing Stop: Activates at 50% TP, trails by ATR * 1.5.
Emergency Exit: Closes if price breaches stop (close < long_stop_price or close > short_stop_price).
Reset: Clears stop/TP prices when flat (position_size = 0).
Why It’s Brilliant:
Score-based entries ensure multi-factor confirmation, filtering out weak signals.
Trailing stops maximize profits in trends, unlike static exits in basic scripts.
Emergency exits add an extra safety layer, critical for futures volatility.
5. DAFE Visuals
The visuals are pure DAFE magic, blending function with cyberpunk flair to make signals intuitive and charts stunning.
Shimmering Bollinger Band Fill:
Display: BB basis (20, white), upper/lower (green/red, 45% transparent). Fill pulses (30–50 alpha) by regime, with glow (60–95 alpha) near bands (close ≥ 0.995x upper or ≤ 1.005x lower).
Purpose: Highlights volatility and key levels with a futuristic glow.
Visuals make complex regimes and signals instantly clear, even for newbies.
Pulsing effects and regime-specific colors add a DAFE signature, setting it apart from generic scripts.
BB glow emphasizes tradeable levels, enhancing decision-making.
Chart Background (Regime Heatmap):
Green — Trending Market: Strong, sustained price movement in one direction. The market is in a trend phase—momentum follows through.
Orange — Range-Bound: Market is consolidating or moving sideways, with no clear up/down trend. Great for mean reversion setups.
Red — Volatile Regime: High volatility, heightened risk, and larger/faster price swings—trade with caution.
Gray — Quiet/Low Volatility: Market is calm and inactive, with small moves—often poor conditions for most strategies.
Navy — Other/Neutral: Regime is uncertain or mixed; signals may be less reliable.
Bollinger Bands Glow (Dynamic Fill):
Neon Red Glow — Warning!: Price is near or breaking above the upper band; momentum is overstretched, watch for overbought conditions or reversals.
Bright Green Glow — Opportunity!: Price is near or breaking below the lower band; market could be oversold, prime for bounce or reversal.
Trend Green Fill — Trending Regime: Fills between bands with green when the market is trending, showing clear momentum.
Gold/Yellow Fill — Range Regime: Fills with gold/aqua in range conditions, showing the market is sideways/oscillating.
Magenta/Red Fill — Volatility Spike: Fills with vivid magenta/red during highly volatile regimes.
Blue Fill — Neutral/Quiet: A soft blue glow for other or uncertain market states.
Moving Averages:
Display: Blue fast EMA (20), red slow EMA (50), 2px.
Purpose: Shows trend direction, with trend_dir requiring ATR-scaled spread.
Dynamic SL/TP Lines:
Display: Pulsing colors (red SL, green TP for Trending; yellow/orange for Range, etc.), 3px, with pulse_alpha for shimmer.
Purpose: Tracks stops/TPs in real-time, color-coded by regime.
6. Dual Dashboards
Two dashboards deliver real-time insights, making the strat a quant command center.
Bottom-Left Metrics Dashboard (2x13):
Metrics: Mode (Active/Paused), trend (Bullish/Bearish/Neutral), ATR, ATR avg, volume spike (YES/NO), RSI (value + Oversold/Overbought/Neutral), HTF RSI, HTF trend, last signal (Buy/Sell/None), regime, bull score.
Display: Black (29% transparent), purple title, color-coded (green for bullish, red for bearish).
Purpose: Consolidates market context and signal strength.
Top-Right Position Dashboard (2x7):
Metrics: Regime, position side (Long/Short/None), position PNL ($), SL, TP, daily PNL ($).
Display: Black (29% transparent), purple title, color-coded (lime for Long, red for Short).
Purpose: Tracks live trades and profitability.
Why It’s Brilliant:
Dual dashboards cover market context and trade status, a rare feature.
Color-coding and concise metrics guide beginners (e.g., green “Buy” = go).
Real-time PNL and SL/TP visibility empower disciplined trading.
7. Performance Tracking
Logic: Arrays (regime_pnl_long/short, regime_win/loss_long/short) track PNL and win/loss by regime (1–5). Updated on trade close (barstate.isconfirmed).
Purpose: Prepares for future adaptive thresholds (e.g., adjust bull_score min based on regime performance).
Why It’s Brilliant: Lays the groundwork for self-optimizing logic, a quant edge over static scripts.
Key Features
Regime-Adaptive: Optimizes signals for Trending, Range, Volatile, Quiet markets.
Futures-Optimized: Precise sizing for ES/MES with tick-based risk inputs.
Multi-Factor Signals: Candlestick patterns, RSI, MACD, and HTF confirmation for robust entries.
Dynamic Exits: ATR/fixed stops, 2:1 TPs, and trailing stops maximize profits.
Safe and Smart: 5% drawdown breaker and emergency exits protect capital.
DAFE Visuals: Shimmering BB fill, pulsing SL/TP, and dual dashboards.
Backtest-Ready: Fixed qty and tick calc for accurate historical testing.
How to Use
Add to Chart: Load on a 5min ES/MES chart in TradingView.
Configure Inputs: Set instrument (ES/MES), tick value ($12.5/$1.25), multiplier (1/0.1), risk ($300 default). Enable ATR stops for volatility.
Monitor Dashboards: Bottom-left for regime/signals, top-right for position/PNL.
Backtest: Run in strategy tester to compare regimes.
Live Trade: Connect to Tradovate or similar. Watch for slippage (e.g., April 27, 2025 ES issues).
Replay Test: Try April 28, 2025 NQ drop to see regime shifts and stops.
Disclaimer
Trading futures involves significant risk of loss and is not suitable for all investors. Past performance does not guarantee future results. Backtest results may differ from live trading due to slippage, fees, or market conditions. Use this strategy at your own risk, and consult a financial advisor before trading. Dskyz (DAFE) Trading Systems is not responsible for any losses incurred.
Backtesting:
Frame: 2023-09-20 - 2025-04-29
Slippage: 3
Fee Typical Range (per side, per contract)
CME Exchange $1.14 – $1.20
Clearing $0.10 – $0.30
NFA Regulatory $0.02
Firm/Broker Commis. $0.25 – $0.80 (retail prop)
TOTAL $1.60 – $2.30 per side
Round Turn: (enter+exit) = $3.20 – $4.60 per contract
Final Notes
The Dskyz (DAFE) Adaptive Regime - Quant Machine Pro is more than a strategy—it’s a revolution. Crafted with DAFE’s signature precision, it rises above generic scripts with adaptive regimes, quant-grade signals, and visuals that make trading a thrill. Whether you’re scalping MES or swinging ES, this system empowers you to navigate markets with confidence and style. Join the DAFE crew, light up your charts, and let’s dominate the futures game!
(This publishing will most likely be taken down do to some miscellaneous rule about properly displaying charting symbols, or whatever. Once I've identified what part of the publishing they want to pick on, I'll adjust and repost.)
Use it with discipline. Use it with clarity. Trade smarter.
**I will continue to release incredible strategies and indicators until I turn this into a brand or until someone offers me a contract.
Created by Dskyz, powered by DAFE Trading Systems. Trade smart, trade bold.
Cerca negli script per "Up down"
WhispererRealtimeVolumeLibrary "WhispererRealtimeVolume"
▮ Overview
The Whisperer Realtime Volume Library is a lightweight and reusable Pine Script® library designed for real-time volume analysis.
It calculates up, down, and neutral volumes dynamically, making it an essential tool for traders who want to gain deeper insights into market activity.
This library is a simplified and modular version of the original "Realtime Volume Bars w Market Buy/Sell/Neutral split & Mkt Delta" indicator by the_MarketWhisperer , tailored for integration into custom scripts.
How bars are classified
- Up Bars
If the current bar’s closing price is higher than the previous bar’s closing price, it is classified as an up bar.
Volume handling:
The increase in volume for this bar is added to the up volume.
This represents buying pressure.
- Down Bars
If the current bar’s closing price is lower than the previous bar’s closing price, it is classified as a down bar.
Volume handling:
The increase in volume for this bar is added to the down volume.
This represents selling pressure.
- Neutral Bars
If the current bar’s closing price is the same as the previous bar’s closing price, it is classified as a neutral bar.
Volume handling:
If neutral volume is enabled, the volume is added to the neutral volume.
If neutral volume is not enabled, the volume is assigned to the same direction as the previous bar (up or down). If the previous direction is unknown, it is added to the neutral volume.
▮ What to look for
Real-Time Volume Calculation : Analyze up, down, and neutral volumes in real-time based on price movements and bar volume.
Customizable Start Line : Add a visual reference line to your chart for better context by viewing the starting point of real-time bars.
Ease of Integration : Designed as a library for seamless use in other Pine Script® indicators or strategies.
▮ How to use
Example code:
//@version=6
indicator("Volume Realtime from Whisperer")
import andre_007/WhispererRealtimeVolume/4 as MW
MW.displayStartLine(startLineColor = color.gray, startLineWidth = 1, startLineStyle = line.style_dashed,
displayStartLine = true, y1=volume, y2=volume + 10)
= MW.mw_upDownVolumeRealtime(true)
plot(volume, style=plot.style_columns, color=color.gray)
plot(volumeUp, style=plot.style_columns, color=color.green)
plot(volumeDown, style=plot.style_columns, color=color.red)
plot(volumeNeutral, style=plot.style_columns, color=color.purple)
▮ Credits
This library is inspired by the original work of the_MarketWhisperer , whose "Realtime Volume Bars" indicator served as the foundation.
Link to original indicator :
Trend Channel SwiftEdgeTrend Channel SwiftEdge
The Trend Channel SwiftEdge is a powerful, visually striking tool designed to help traders identify trends and potential trade setups across multiple timeframes with a futuristic, tech-inspired design. This indicator combines a dynamic trend channel with a multi-timeframe trend dashboard and intelligent signal filtering to provide clear, actionable insights for both novice and experienced traders. Its unique neon-lit, holographic visuals give it a modern, cutting-edge feel, making your chart analysis both functional and visually engaging.
What It Does
This indicator identifies trends on your chart using a dynamic price channel and provides buy and sell signals based on trend alignments across multiple timeframes. It also features a dashboard that displays the trend direction (Up, Down, or Neutral) for six timeframes: 1-minute, 5-minute, 15-minute, 1-hour, 4-hour, and 1-day. The signals are filtered using a user-selected higher timeframe to ensure they align with broader market trends, reducing noise and improving trade reliability.
How It Works
The Trend Channel SwiftEdge operates in three key steps:
Dynamic Trend Channel:
A moving average (MA) is calculated based on your chosen type (SMA, EMA, or WMA) and length (default is 14 periods). This MA forms the backbone of the trend channel.
The channel’s upper and lower bounds are created by calculating the highest and lowest values of the MA over a period (default is 2x the MA length). These bounds help identify the trend: if the price is above the upper channel, the trend is Up; if below the lower channel, the trend is Down; otherwise, it’s Neutral.
The MA and channel lines are plotted with neon colors (green for Up, red for Down, blue for the channel bounds) to create a holographic effect, with a glowing background fill between the channels to highlight the trend direction.
Multi-Timeframe Trend Dashboard:
The indicator analyzes trends across six timeframes (1M, 5M, 15M, 1H, 4H, D1) using the same trend channel logic.
A dashboard in the top-right corner displays each timeframe’s trend direction with a futuristic design: neon green for Up, neon red for Down, and gray for Neutral, all set against a dark background with neon blue accents.
Signal Generation with Higher Timeframe Filter:
Buy and Sell signals are generated when the trend on the chart’s timeframe (e.g., 1M) aligns with a user-selected higher timeframe (e.g., 15M).
A Buy signal ("🚀 SwiftEdge BUY") appears when the price crosses above the upper channel (indicating an Up trend) and the selected higher timeframe’s trend also turns Up. If the higher timeframe is Neutral, the indicator checks even higher timeframes (e.g., 1H and 4H for a 15M filter) to confirm the trend direction.
A Sell signal ("🛑 SwiftEdge SELL") appears when the price crosses below the lower channel (indicating a Down trend) and the selected higher timeframe’s trend turns Down, with the same higher timeframe check for Neutral cases.
Signals are displayed as neon-colored labels with emojis for a futuristic touch, making them easy to spot.
Why This Combination?
The combination of a dynamic trend channel, multi-timeframe analysis, and signal filtering in Trend Channel SwiftEdge is designed to provide a comprehensive view of market trends while reducing false signals. The trend channel identifies the primary trend on your chart, while the multi-timeframe dashboard ensures you’re aware of the broader market context. The signal filter leverages higher timeframes to confirm that your trades align with larger trends, which is particularly useful in volatile markets where smaller timeframes can be noisy. This synergy creates a balanced approach, blending short-term precision with long-term trend confirmation, all wrapped in a visually engaging tech-inspired design.
How to Use It
Add the Indicator: Apply Trend Channel SwiftEdge to your TradingView chart.
Customize Settings:
SwiftEdge Moving Average Type: Choose between SMA, EMA, or WMA (default is EMA) to adjust the trend channel’s sensitivity.
SwiftEdge MA Length: Set the period for the moving average (default is 14).
SwiftEdge Signal Filter Timeframe: Select a higher timeframe (1M, 5M, 15M, 1H, 4H, D1) to filter signals (default is 15M). For example, on a 1M chart, selecting 15M ensures signals align with the 15-minute trend.
Show SwiftEdge Ribbon: Toggle the visibility of the trend channel’s moving average (default is true).
Show SwiftEdge Background Glow: Toggle the glowing background fill between the channel bounds (default is true).
Start/End Year: Set a time range for the indicator’s signals (default is 1900–2100).
Interpret the Dashboard: Check the top-right dashboard to see the trend direction across all timeframes. Use this to understand the broader market context.
Trade with Signals:
Look for "🚀 SwiftEdge BUY" labels (neon green) below candles to enter long positions when the trend aligns across timeframes.
Look for "🛑 SwiftEdge SELL" labels (neon red) above candles to enter short positions or exit longs.
Ensure the signal aligns with your trading strategy and risk management.
What Makes It Original?
Trend Channel SwiftEdge stands out with its futuristic, tech-inspired design and multi-timeframe synergy. Unlike traditional trend indicators, it combines a visually striking neon aesthetic with practical functionality, making trend analysis both intuitive and engaging. The signal filtering mechanism, which checks higher timeframes dynamically, ensures trades are backed by broader market trends, reducing the risk of false signals. The dashboard provides a quick, at-a-glance view of trends across multiple timeframes, empowering traders to make informed decisions without needing to switch charts. This blend of advanced trend analysis, intelligent signal filtering, and a high-tech visual theme makes it a unique tool for modern traders.
Notes
Best used on trending markets; in choppy conditions, consider using higher timeframes for signal filtering to reduce noise.
Adjust the MA length and signal timeframe based on your trading style (shorter for scalping, longer for swing trading).
Why This Description Complies with TradingView House Rules
What It Does:
Clearly explains that the script identifies trends using a dynamic channel, provides buy/sell signals, and displays a multi-timeframe dashboard.
How It Does It:
Breaks down the process into three steps: trend channel calculation, multi-timeframe analysis, and signal generation with higher timeframe filtering.
Explains the logic (e.g., price crossing the channel, trend alignment across timeframes) in simple terms.
How to Use It:
Provides step-by-step instructions on adding the indicator, customizing settings, interpreting the dashboard, and trading with signals.
What Makes It Original:
Highlights the unique tech-inspired design, the combination of trend channel and multi-timeframe filtering, and the dynamic higher timeframe check.
Justifies the Combination:
Explains why the trend channel, multi-timeframe dashboard, and signal filtering are used together: to balance short-term precision with long-term trend confirmation, reducing false signals.
Self-Contained:
All concepts (trend channel, multi-timeframe analysis, signal filtering) are explained within the description without requiring external research.
Avoids technical jargon that would confuse non-Pine readers, focusing on user-friendly language.
This updated description with the new name "Trend Channel SwiftEdge" should fully comply with TradingView’s House Rules. If you need further adjustments, let me know!
Pivot Levels with EMA Trend📌 Trend Change Levels with EMA Trend
✨ Description:
This TradingView script identifies clean trend change levels based on 1-hour structure shifts and filters them to keep only those not invalidated. It follows the "Jake Ricci" method, each level is printed at the beginning of the candle that changes the trend, on a 1 hour chart. For precision, make sure to exclude after/pre market and only use the levels on regular hours charts.
It includes dynamic EMAs (9, 50, 200), intraday VWAP, the daily open level printed, and a visual trend label based on EMA(9) slope.
Designed for intermediate traders, it helps build bias, manage entries, and avoid false setups by focusing on clean, reactive levels that the market respects.
🔧 Core Logic:
On the 1H chart, the script compares current and previous closes to detect trend direction. If the trend flips (e.g., up to down), the open of the candle that caused the flip becomes a candidate level.
Only levels that remain untouched by future candle closes are plotted — this filters out “weak” levels that price already violated (which means, a candle closes after passing through the level).
These levels become key S/R zones and often act as reaction points during pullbacks, traps, and liquidity sweeps.
The idea is to check how the price reacts to those levels. Usually there's a clean retest of the level. After that, if the price continues in that direction, it tends to reach the following level.
🔹 Included Tools:
🟣 Trend Change Levels (1H):
Fixed horizontal lines based on confirmed shifts in trend, shown only when not broken.
📉 EMAs (9 / 50 / 200):
Visibility can be set per timeframe. Use for trend context.
📍 EMA Trend Label:
Shows \"UP\", \"DOWN\", or \"RANGE\" based on EMA(9) slope.
🔵 VWAP (Intraday Reset):
Real-time volume-weighted average price that resets daily. Useful for fair value zones and reversion plays.
🟠 Daily Open Line:
Plot of the current day’s open. Used for intraday directional bias. Usually: DO NOT take longs below the Open Print, DO NOT take shorts above it.
📊 ATR Table:
Displays current ATR multiplier on the chart. It's useful to understand if the market is expanding or not.
📈 How to Use It (Strategy):
1. Start on the 1H chart to generate levels.
Only the open of candles that reversed trend are considered — and only if future candles didn’t close through them. I suggest manually adding horizontal lines to mark again the levels, so that they stick to all the timeframes.
2. Use the trend label to decide your bias — \"UP\" for long setups, \"DOWN\" for shorts. Avoid trading against the slope.
3. Switch to the 5m chart and wait for price to approach a plotted level. These are often used for manipulation, retests, or clean reversals.
4. Look for confirmation: rejection candles, break-and-retest, strong engulfing candles, or traps above/below the level. ALWAYS check the price action around the level, along with the volume.
5. Check if VWAP or an EMA is near the level. If yes, the confluence strengthens the trade idea.
6. Use the ATR value to understand if the market is expanding (candles are bigger than the ATR). You don't want to stay in a slow and ranging trade.
✅ Example Entry Flow:
1. On the 1H chart, note a trend change level printed recently.
2. Check the current trend label — if it says \"UP,\" prefer longs.
3. Wait for price to retrace toward the level.
4. On the 5m, look for a bullish engulfing candle or trap setup at the level.
5. Check if VWAP and EMA(50) are near. If yes, execute the trade.
6. Set stop just under the low of the candle prior to your entry. Ideally, a retracing candle.
To be clear: imaging to be LONG, you wait for a retracement that should touch your level. You wait for a candle that resumes the LONG trend, enter when it breaks the high of the previous candle (sill in retracement), you place your stop under the candle prior to your entry.
Notes:
No repainting — levels only show up after confirmed shifts.
Removes broken levels for chart clarity and reliability.
Helps spot high-probability pullback zones and fakeouts.
Perfect confluence tool to support price action, SMC, or EMA strategies.
Works across multiple timeframes with customizable inputs.
👤 Ideal For:
Intraday traders looking for reactive entry points and direction confirmation.
Swing traders wanting to pinpoint continuation zones or reversal pivots.
🚨 Final Note: This indicator doesn’t generate buy/sell signals. It improves your trade filtering by identifying areas the market already respected and reacting to them with price action. Combine it with your own system , test it in replay, and use screenshots to document setups.
📌 If used with discipline, this becomes a precision tool — not a signal generator.
Day’s Open ForecastOverview
This Pine Script indicator combines two primary components:
1. Day’s Open Forecast:
o Tracks historical daily moves (up and down) from the day’s open.
o Calculates average up and down moves over a user-defined lookback period.
o Optionally includes standard deviation adjustments to forecast potential intraday levels.
o Plots lines on the chart for the forecasted up and down moves from the current day's open.
2. Session VWAP:
o Allows you to specify a custom trading session (by time range and UTC offset).
o Calculates and plots a Volume-Weighted Average Price (VWAP) during that session.
By combining these two features, you can gauge potential intraday moves relative to historical behavior from the open, while also tracking a session-specific VWAP that can act as a dynamic support/resistance reference.
How the Code Works
1. Collect Daily Moves
o The script detects when a new day starts using time("D").
o Once a new day is detected, it stores the previous day’s up-move (dayHigh - dayOpen) and down-move (dayOpen - dayLow) into arrays.
o These arrays keep track of the last N days (default: 126) of up/down move data.
2. Compute Statistics
o The script computes the average (f_average()) of up-moves and down-moves over the stored period.
o It also computes the standard deviation (f_stddev()) of up/down moves for optional “forecast bands.”
3. Forecast Lines
o Plots the current day’s open.
o Plots the average forecast lines above and below the open (Avg Up Move Level and Avg Down Move Level).
o If standard deviation is enabled, plots additional lines (Avg+StdDev Up and Avg+StdDev Down).
4. Session VWAP
o The script detects the start of a user-defined session (via input.session) and resets accumulation of volume and the numerator for VWAP.
o As each bar in the session updates, it accumulates volume (vwapCumulativeVolume) and a price-volume product (vwapCumulativeNumerator).
o The session VWAP is then calculated as (vwapCumulativeNumerator / vwapCumulativeVolume) and plotted.
5. Visualization Options
o Users can toggle standard deviation usage, historical up/down moves plotting, and whether to show the forecast “bands.”
o The vwapSession and vwapUtc inputs let you adjust which session (and time zone offset) the VWAP is calculated for.
________________________________________
How to Use This Indicator on TradingView
1. Create a New Script
o Open TradingView, then navigate to Pine Editor (usually found at the bottom of the chart).
o Copy and paste the entire code into the editor.
2. Save and Add to Chart
o Click Save (give it a relevant title if you wish), then click Add to chart.
o The indicator will appear on your chart with the forecast lines and VWAP.
o By default, it is overlayed on the price chart (because of overlay=true).
3. Customize Inputs
o In the indicator’s settings, you can:
Change lookback days (default: 126).
Enable or disable standard deviation (Include Standard Deviation in Forecast?).
Adjust the standard deviation multiplier.
Choose whether to plot bands (Plot Bands with Averages/StdDev?).
Plot historical moves if desired (Plot Historical Up/Down Moves for Reference?).
Set your custom session and UTC offset for the VWAP calculation.
4. Interpretation
o “Current Day Open” is simply today’s open price on your chart.
o Up/Down Move Lines: Indicate a potential forecast based on historical averages.
If standard deviation is enabled, the second set of lines acts as an extended range.
o VWAP: Helpful for determining intraday price equilibrium over the specified session.
Important Notes / Best Practices
• The script only updates the historical up/down move data once per day (when a new day starts).
• The VWAP portion resets at the start of the specified session each day.
• Standard deviation multiplies the average up/down range, giving you a sense of “volatility range” around the day’s open.
• Adjust the lookback length (dayCount) to balance how many days of data you want to average. More days = smoother but possibly slower to adapt; fewer days = more reactive but potentially less reliable historically.
Educational & Liability Disclaimers
1. Educational Disclaimer
o The information provided by this indicator is for educational and informational purposes only. It is a technical analysis tool intended to demonstrate how to use historical data and basic statistics in Pine Script.
2. No Financial Advice
o This script does not constitute financial or investment advice. All examples and explanations are solely illustrative. You should always do your own analysis before making any investment decisions.
3. No Liability
o The author of this script is not liable for any losses or damages—monetary or otherwise—that may occur from the application of this script.
o Past performance does not guarantee future results, and you should never invest money you cannot afford to lose.
By adding this indicator to your TradingView chart, you acknowledge and accept that you alone are responsible for your own trading decisions.
Enjoy using the “Day’s Open Forecast” and Session VWAP for better market insights!
Multi-SMA Dashboard (10 SMAs)Description:
This script, "Multi-SMA Dashboard (10 SMAs)," creates a dashboard on a TradingView chart to analyze ten Simple Moving Averages (SMAs) of varying lengths. It overlays the chart and displays a table with each SMA’s direction, price position relative to the SMA, and angle of movement, providing a comprehensive trend overview.
How It Works:
1. **Inputs**: Users define lengths for 10 SMAs (default: 5, 10, 20, 50, 100, 150, 200, 250, 300, 350), select a price source (default: close), and customize table appearance and options like angle units (degrees/radians) and debug plots.
2. **SMA Calculation**: Computes 10 SMAs using the `ta.sma()` function with user-specified lengths and price source.
3. **Direction Determination**: The `sma_direction()` function checks each SMA’s trend:
- "Up" if current SMA > previous SMA.
- "Down" if current SMA < previous SMA.
- "Flat" if equal (no strength distinction).
4. **Price Position**: Compares the price source to each SMA, labeling it "Above" or "Below."
5. **Angle Calculation**: Tracks the most recent direction change point for each SMA and calculates its angle (atan of price change over time) in degrees or radians, based on the `showInRadians` toggle.
6. **Table Display**: A 12-column table shows:
- Columns 1-10: SMA name, direction (Up/Down/Flat), Above/Below status, and angle.
- Column 11: Summary of Up, Down, and Flat counts.
- Colors reflect direction (lime for Up/Above, red for Down/Below, white for Flat).
7. **Debug Option**: Optionally plots all SMAs and price for visual verification when `debug_plots_toggle` is enabled.
Indicators Used:
- Simple Moving Averages (SMAs): 10 user-configurable SMAs ranging from short-term (e.g., 5) to long-term (e.g., 350) periods.
The script runs continuously, updating the table on each bar, and overlays the chart to assist traders in assessing multi-timeframe trend direction and momentum without cluttering the view unless debug mode is active.
Session Coloring Bar with ICT Macro [dani]The Session Coloring Bar is customizable Pine Script indicator designed to visually enhance your charts by applying unique colors to specific trading sessions or timeframes. This tool allows traders to easily identify and differentiate between macro sessions (e.g., 24-hour cycles) and custom-defined sessions (e.g., Session A, Session B), making it ideal for analyzing market activity during specific periods.
In the context of trading, the term "ICT Macro" , as discussed by Michael J. Huddleston (ICT), refers to specific timeframes or "windows" where market behavior often follows predictable patterns. Traders typically focus on the last 10 minutes of an hour and the first 10 minutes of the next hour (e.g., 0150-0210 , 0050-0110 , or 0950-1010 ) to identify key price movements, liquidity shifts, or market inefficiencies.
This script highlights these macro timeframes, enabling traders to visually analyze price action during these critical periods. Use this tool to support your strategy, but always combine it with your own analysis and risk management.
With this indicator, you can:
Highlight Macro Sessions : Automatically color bars based on predefined 24-hour macro sessions.
Customize Session Settings : Define up to three custom sessions (A & B) with individual start/end times, visibility toggles, and unique bar colors.
Timeframe Filtering : Hide session coloring above a specified timeframe to avoid clutter on higher timeframes.
Personal Notes : Add comments to each session for better organization and quick reference.
Dynamic Color Logic : Bars are colored based on their direction (up, down, or neutral) within the active session.
How to Use:
Enable/Disable Sessions :
Use the Show Coloring toggle to enable or disable session coloring for Macro, Session A, Session B, or Session C.
Set Session Times :
Define the start and end times for each session in the format HHMM-HHMM (e.g., 1600-0930 for an overnight session).
Choose Colors :
Assign unique colors for upward (Bar Up) and downward (Bar Down) bars within each session.
Adjust Timeframe Visibility :
Use the Hide above this TF input to specify the maximum timeframe where session coloring will be visible.
Add Notes :
Use the Comment field to add personal notes or labels for each session.
Example Use Cases:
Overnight Sessions :
Highlight overnight trading hours (e.g., 1600-0930) to analyze price action during low liquidity periods.
Asian/European/US Sessions : Define separate sessions for major trading regions to track regional market behavior.
Macro Analysis : Use the predefined 24-hour macro sessions to study hourly price movements across a full trading day.
Disclaimer:
The Session Coloring Bar is not a trading signal generator and does not predict market direction or provide buy/sell signals. Instead, it is a visualization tool designed to help you identify and analyze specific trading sessions or timeframes on your chart. By highlighting key sessions and their corresponding price movements, this indicator enables you to focus on periods of interest and make more informed trading decisions.
Thank you for choosing this indicator! I hope it becomes a valuable part of your trading toolkit. Remember, trading is a journey, and having the right tools can make all the difference. Whether you're a seasoned trader or just starting out, this indicator is designed to help you stay organized and focused on what matters most—price action. Happy trading, and may your charts be ever in your favor! 😊
XTE+ Optimized Trend Tracker📊 XTE+ Optimized Trend Tracker (OTT)
XTE+ OTT is a powerful, trend-following indicator designed for traders who value clarity, precision, and advanced analytics. It offers not only accurate entry and exit signals but also visual zones, historical signal analysis, and real-time trend monitoring.
🧠 How It Works
XTE+ OTT is based on an improved version of the Optimized Trend Tracker. It utilizes multiple customizable moving average types (VAR, EMA, SMA, WMA, and more) combined with volatility filtering (ATR logic) to generate cleaner, more reliable trend-following signals.
✅ Features
Trend Direction Detection with automatic switch logic
Buy/Sell Signal Icons with distinct large markers
Entry/Exit Zones drawn visually on chart
Custom Take-Profit / Stop-Loss settings for Buy and Sell signals
Statistical Panel showing:
Current Trend (Up/Down)
Number of total signals
Number of winning trades
Win percentage
Configurable Display Options:
Show/hide signals
Show/hide trend zones
Show/hide OTT and MA lines
Supports multiple MA types including EMA, SMA, VAR, ZLEMA, TSF and more
Non-repainting logic — signals are confirmed at bar close
⚙️ Inputs and Customization
OTT Period & Sensitivity (%)
MA Type Selection (VAR, EMA, etc.)
Entry Zone Visualization On/Off
Trend Panel Display On/Off
TP/SL % per direction (Buy/Sell separately)
Option to disable MA or OTT line display
📈 Visuals
Signal icons: BUY (Green Up Label), SELL (Red Down Label)
Entry zones: circles near breakout levels
Trendlines change color dynamically (green for uptrend, red for downtrend)
Trend Panel is pinned in the top-right corner for quick reference
💡 Usage Tips
Best used on higher timeframes (15min, 1H, 4H+) for more meaningful trend signals
Combine with volume/volatility indicators or support/resistance zones for enhanced decision making
Use TP/SL logic to track signal success over time and optimize strategies
📌 Disclaimer
This script is for educational and informational purposes only. It is not financial advice. Always test and validate your strategy before applying it in live markets.
ZigZag█ Overview
This Pine Script™ library provides a comprehensive implementation of the ZigZag indicator using advanced object-oriented programming techniques. It serves as a developer resource rather than a standalone indicator, enabling Pine Script™ programmers to incorporate sophisticated ZigZag calculations into their own scripts.
Pine Script™ libraries contain reusable code that can be imported into indicators, strategies, and other libraries. For more information, consult the Libraries section of the Pine Script™ User Manual.
█ About the Original
This library is based on TradingView's official ZigZag implementation .
The original code provides a solid foundation with user-defined types and methods for calculating ZigZag pivot points.
█ What is ZigZag?
The ZigZag indicator filters out minor price movements to highlight significant market trends.
It works by:
1. Identifying significant pivot points (local highs and lows)
2. Connecting these points with straight lines
3. Ignoring smaller price movements that fall below a specified threshold
Traders typically use ZigZag for:
- Trend confirmation
- Identifying support and resistance levels
- Pattern recognition (such as Elliott Waves)
- Filtering out market noise
The algorithm identifies pivot points by analyzing price action over a specified number of bars, then only changes direction when price movement exceeds a user-defined percentage threshold.
█ My Enhancements
This modified version extends the original library with several key improvements:
1. Support and Resistance Visualization
- Adds horizontal lines at pivot points
- Customizable line length (offset from pivot)
- Adjustable line width and color
- Option to extend lines to the right edge of the chart
2. Support and Resistance Zones
- Creates semi-transparent zone areas around pivot points
- Customizable width for better visibility of important price levels
- Separate colors for support (lows) and resistance (highs)
- Visual representation of price areas rather than just single lines
3. Zig Zag Lines
- Separate colors for upward and downward ZigZag movements
- Visually distinguishes between bullish and bearish price swings
- Customizable colors for text
- Width customization
4. Enhanced Settings Structure
- Added new fields to the Settings type to support the additional features
- Extended Pivot type with supportResistance and supportResistanceZone fields
- Comprehensive configuration options for visual elements
These enhancements make the ZigZag more useful for technical analysis by clearly highlighting support/resistance levels and zones, and providing clearer visual cues about market direction.
█ Technical Implementation
This library leverages Pine Script™'s user-defined types (UDTs) to create a robust object-oriented architecture:
- Settings : Stores configuration parameters for calculation and display
- Pivot : Represents pivot points with their visual elements and properties
- ZigZag : Manages the overall state and behavior of the indicator
The implementation follows best practices from the Pine Script™ User Manual's Style Guide and uses advanced language features like methods and object references. These UDTs represent Pine Script™'s most advanced feature set, enabling sophisticated data structures and improved code organization.
For newcomers to Pine Script™, it's recommended to understand the language fundamentals before working with the UDT implementation in this library.
█ Usage Example
//@version=6
indicator("ZigZag Example", overlay = true, shorttitle = 'ZZA', max_bars_back = 5000, max_lines_count = 500, max_labels_count = 500, max_boxes_count = 500)
import andre_007/ZigZag/1 as ZIG
var group_1 = "ZigZag Settings"
//@variable Draw Zig Zag on the chart.
bool showZigZag = input.bool(true, "Show Zig-Zag Lines", group = group_1, tooltip = "If checked, the Zig Zag will be drawn on the chart.", inline = "1")
// @variable The deviation percentage from the last local high or low required to form a new Zig Zag point.
float deviationInput = input.float(5.0, "Deviation (%)", minval = 0.00001, maxval = 100.0,
tooltip = "The minimum percentage deviation from a previous pivot point required to change the Zig Zag's direction.", group = group_1, inline = "2")
// @variable The number of bars required for pivot detection.
int depthInput = input.int(10, "Depth", minval = 1, tooltip = "The number of bars required for pivot point detection.", group = group_1, inline = "3")
// @variable registerPivot (series bool) Optional. If `true`, the function compares a detected pivot
// point's coordinates to the latest `Pivot` object's `end` chart point, then
// updates the latest `Pivot` instance or adds a new instance to the `ZigZag`
// object's `pivots` array. If `false`, it does not modify the `ZigZag` object's
// data. The default is `true`.
bool allowZigZagOnOneBarInput = input.bool(true, "Allow Zig Zag on One Bar", tooltip = "If checked, the Zig Zag calculation can register a pivot high and pivot low on the same bar.",
group = group_1, inline = "allowZigZagOnOneBar")
var group_2 = "Display Settings"
// @variable The color of the Zig Zag's lines (up).
color lineColorUpInput = input.color(color.green, "Line Colors for Up/Down", group = group_2, inline = "4")
// @variable The color of the Zig Zag's lines (down).
color lineColorDownInput = input.color(color.red, "", group = group_2, inline = "4",
tooltip = "The color of the Zig Zag's lines")
// @variable The width of the Zig Zag's lines.
int lineWidthInput = input.int(1, "Line Width", minval = 1, tooltip = "The width of the Zig Zag's lines.", group = group_2, inline = "w")
// @variable If `true`, the Zig Zag will also display a line connecting the last known pivot to the current `close`.
bool extendInput = input.bool(true, "Extend to Last Bar", tooltip = "If checked, the last pivot will be connected to the current close.",
group = group_1, inline = "5")
// @variable If `true`, the pivot labels will display their price values.
bool showPriceInput = input.bool(true, "Display Reversal Price",
tooltip = "If checked, the pivot labels will display their price values.", group = group_2, inline = "6")
// @variable If `true`, each pivot label will display the volume accumulated since the previous pivot.
bool showVolInput = input.bool(true, "Display Cumulative Volume",
tooltip = "If checked, the pivot labels will display the volume accumulated since the previous pivot.", group = group_2, inline = "7")
// @variable If `true`, each pivot label will display the change in price from the previous pivot.
bool showChgInput = input.bool(true, "Display Reversal Price Change",
tooltip = "If checked, the pivot labels will display the change in price from the previous pivot.", group = group_2, inline = "8")
// @variable Controls whether the labels show price changes as raw values or percentages when `showChgInput` is `true`.
string priceDiffInput = input.string("Absolute", "", options = ,
tooltip = "Controls whether the labels show price changes as raw values or percentages when 'Display Reversal Price Change' is checked.",
group = group_2, inline = "8")
// @variable If `true`, the Zig Zag will display support and resistance lines.
bool showSupportResistanceInput = input.bool(true, "Show Support/Resistance Lines",
tooltip = "If checked, the Zig Zag will display support and resistance lines.", group = group_2, inline = "9")
// @variable The number of bars to extend the support and resistance lines from the last pivot point.
int supportResistanceOffsetInput = input.int(50, "Support/Resistance Offset", minval = 0,
tooltip = "The number of bars to extend the support and resistance lines from the last pivot point.", group = group_2, inline = "10")
// @variable The width of the support and resistance lines.
int supportResistanceWidthInput = input.int(1, "Support/Resistance Width", minval = 1,
tooltip = "The width of the support and resistance lines.", group = group_2, inline = "11")
// @variable The color of the support lines.
color supportColorInput = input.color(color.red, "Support/Resistance Color", group = group_2, inline = "12")
// @variable The color of the resistance lines.
color resistanceColorInput = input.color(color.green, "", group = group_2, inline = "12",
tooltip = "The color of the support/resistance lines.")
// @variable If `true`, the support and resistance lines will be drawn as zones.
bool showSupportResistanceZoneInput = input.bool(true, "Show Support/Resistance Zones",
tooltip = "If checked, the support and resistance lines will be drawn as zones.", group = group_2, inline = "12-1")
// @variable The color of the support zones.
color supportZoneColorInput = input.color(color.new(color.red, 70), "Support Zone Color", group = group_2, inline = "12-2")
// @variable The color of the resistance zones.
color resistanceZoneColorInput = input.color(color.new(color.green, 70), "", group = group_2, inline = "12-2",
tooltip = "The color of the support/resistance zones.")
// @variable The width of the support and resistance zones.
int supportResistanceZoneWidthInput = input.int(10, "Support/Resistance Zone Width", minval = 1,
tooltip = "The width of the support and resistance zones.", group = group_2, inline = "12-3")
// @variable If `true`, the support and resistance lines will extend to the right of the chart.
bool supportResistanceExtendInput = input.bool(false, "Extend to Right",
tooltip = "If checked, the lines will extend to the right of the chart.", group = group_2, inline = "13")
// @variable References a `Settings` instance that defines the `ZigZag` object's calculation and display properties.
var ZIG.Settings settings =
ZIG.Settings.new(
devThreshold = deviationInput,
depth = depthInput,
lineColorUp = lineColorUpInput,
lineColorDown = lineColorDownInput,
textUpColor = lineColorUpInput,
textDownColor = lineColorDownInput,
lineWidth = lineWidthInput,
extendLast = extendInput,
displayReversalPrice = showPriceInput,
displayCumulativeVolume = showVolInput,
displayReversalPriceChange = showChgInput,
differencePriceMode = priceDiffInput,
draw = showZigZag,
allowZigZagOnOneBar = allowZigZagOnOneBarInput,
drawSupportResistance = showSupportResistanceInput,
supportResistanceOffset = supportResistanceOffsetInput,
supportResistanceWidth = supportResistanceWidthInput,
supportColor = supportColorInput,
resistanceColor = resistanceColorInput,
supportResistanceExtend = supportResistanceExtendInput,
supportResistanceZoneWidth = supportResistanceZoneWidthInput,
drawSupportResistanceZone = showSupportResistanceZoneInput,
supportZoneColor = supportZoneColorInput,
resistanceZoneColor = resistanceZoneColorInput
)
// @variable References a `ZigZag` object created using the `settings`.
var ZIG.ZigZag zigZag = ZIG.newInstance(settings)
// Update the `zigZag` on every bar.
zigZag.update()
//#endregion
The example code demonstrates how to create a ZigZag indicator with customizable settings. It:
1. Creates a Settings object with user-defined parameters
2. Instantiates a ZigZag object using these settings
3. Updates the ZigZag on each bar to detect new pivot points
4. Automatically draws lines and labels when pivots are detected
This approach provides maximum flexibility while maintaining readability and ease of use.
Auto TrendLines [TradingFinder] Support Resistance Signal Alerts🔵 Introduction
The trendline is one of the most essential tools in technical analysis, widely used in financial markets such as Forex, cryptocurrency, and stocks. A trendline is a straight line that connects swing highs or swing lows and visually indicates the market’s trend direction.
Traders use trendlines to identify price structure, the strength of buyers and sellers, dynamic support and resistance zones, and optimal entry and exit points.
In technical analysis, trendlines are typically classified into three categories: uptrend lines (drawn by connecting higher lows), downtrend lines (formed by connecting lower highs), and sideways trends (moving horizontally). A valid trendline usually requires at least three confirmed touchpoints to be considered reliable for trading decisions.
Trendlines can serve as the foundation for a variety of trading strategies, such as the trendline bounce strategy, valid breakout setups, and confluence-based analysis with other tools like candlestick patterns, divergences, moving averages, and Fibonacci levels.
Additionally, trendlines are categorized into internal and external, and further into major and minor levels, each serving unique roles in market structure analysis.
🔵 How to Use
Trendlines are a key component in technical analysis, used to identify market direction, define dynamic support and resistance zones, highlight strategic entry and exit points, and manage risk. For a trendline to be reliable, it must be drawn based on structural principles—not by simply connecting two arbitrary points.
🟣 Selecting Pivot Types Based on Trend Direction
The first step is to determine the market trend: uptrend, downtrend, or sideways.
Then, choose pivot points that match the trend type :
In an uptrend, trendlines are drawn by connecting low pivots, especially higher lows.
In a downtrend, trendlines are formed by connecting high pivots, specifically lower highs.
It is crucial to connect pivots of the same type and structure to ensure the trendline is valid and analytically sound.
🟣 Pivot Classification
This indicator automatically classifies pivot points into two categories :
Major Pivots :
MLL : Major Lower Low
MHL : Major Higher Low
MHH : Major Higher High
MLH : Major Lower High
These define the primary structure of the market and are typically used in broader structural analysis.
Minor Pivots :
mLL: minor Lower Low
mHL: minor Higher Low
mHH: minor Higher High
mLH: minor Lower High
These are used for drawing more precise trendlines within corrective waves or internal price movements.
Example : In a downtrend, drawing a trendline from an MHH to an mHH creates structural inconsistency and introduces noise. Instead, connect points like MHL to MHL or mLH to mLH for a valid trendline.
🟣 Drawing High-Precision Trendlines
To ensure a reliable trendline :
Use pivots of the same classification (Major with Major or Minor with Minor).
Ensure at least three valid contact points (three touches = structural confirmation).
Draw through candles with the least deviation (choose wicks or bodies based on confluence).
Preferably draw from right to left for better alignment with current market behavior.
Use parallel lines to turn a single trendline into a trendline zone, if needed.
🟣 Using Trendlines for Trade Entries
Bounce Entry: When price approaches the trendline and shows signs of reversal (e.g., a reversal candle, divergence, or support/resistance), enter in the direction of the trend with a logical stop-loss.
Breakout Entry: When price breaks through the trendline with strong momentum and a confirmation (such as a retest or break of structure), consider trading in the direction of the breakout.
🟣 Trendline-Based Risk Management
For bounce entries, the stop-loss is placed below the trendline or the last pivot low (in an uptrend).
For breakout entries, the stop-loss is set behind the breakout candle or the last structural level.
A broken trendline can also act as an exit signal from a trade.
🟣 Combining Trendlines with Other Tools (Confluence)
Trendlines gain much more strength when used alongside other analytical tools :
Horizontal support and resistance levels
Moving averages (such as EMA 50 or EMA 200)
Fibonacci retracement zones
Candlestick patterns (e.g., Engulfing, Pin Bar)
RSI or MACD divergences
Market structure breaks (BoS / ChoCH)
🔵 Settings
Pivot Period : This defines how sensitive the pivot detection is. A higher number means the algorithm will identify more significant pivot points, resulting in longer-term trendlines.
Alerts
Alert :
Enable or disable the entire alert system
Set a custom alert name
Choose how often alerts trigger (every time, once per bar, or on bar close)
Select the time zone for alert timestamps (e.g., UTC)
Each trendline type supports two alert types :
Break Alert : Triggered when price breaks the trendline
React Alert : Triggered when price reacts or bounces off the trendline
These alerts can be independently enabled or disabled for all trendline categories (Major/Minor, Internal/External, Up/Down).
Display :
For each of the eight trendline types, you can control :
Whether to show or hide the line
Whether to delete the previous line when a new one is drawn
Color, line style (solid, dashed, dotted), extension direction (e.g., right only), and width
Major lines are typically thicker and more opaque, while minor lines appear thinner and more transparent.
All settings are designed to give the user full control over the appearance, behavior, and alert system of the indicator, without requiring manual drawing or adjustments.
🔵 Conclusion
A trendline is more than just a line on the chart—it is a structural, strategic, and flexible tool in technical analysis that can serve as the foundation for understanding price behavior and making trading decisions. Whether in trending markets or during corrections, trendlines help traders identify market direction, key zones, and high-potential entry and exit points with precision.
The accuracy and effectiveness of a trendline depend on using structurally valid pivot points and adhering to proper market logic, rather than relying on guesswork or personal bias.
This indicator is built to solve that exact problem. It automatically detects and draws multiple types of trendlines based on actual price structure, separating them into Major/Minor and Internal/External categories, and respecting professional analytical principles such as pivot type, trend direction, and structural location.
iD EMARSI on ChartSCRIPT OVERVIEW
The EMARSI indicator is an advanced technical analysis tool that maps RSI values directly onto price charts. With adaptive scaling capabilities, it provides a unique visualization of momentum that flows naturally with price action, making it particularly valuable for FOREX and low-priced securities trading.
KEY FEATURES
1 PRICE MAPPED RSI VISUALIZATION
Unlike traditional RSI that displays in a separate window, EMARSI plots the RSI directly on the price chart, creating a flowing line that identifies momentum shifts within the context of price action:
// Map RSI to price chart with better scaling
mappedRsi = useAdaptiveScaling ?
median + ((rsi - 50) / 50 * (pQH - pQL) / 2 * math.min(1.0, 1/scalingFactor)) :
down == pQL ? pQH : up == pQL ? pQL : median - (median / (1 + up / down))
2 ADAPTIVE SCALING SYSTEM
The script features an intelligent scaling system that automatically adjusts to different market conditions and price levels:
// Calculate adaptive scaling factor based on selected method
scalingFactor = if scalingMethod == "ATR-Based"
math.min(maxScalingFactor, math.max(1.0, minTickSize / (atrValue/avgPrice)))
else if scalingMethod == "Price-Based"
math.min(maxScalingFactor, math.max(1.0, math.sqrt(100 / math.max(avgPrice, 0.01))))
else // Volume-Based
math.min(maxScalingFactor, math.max(1.0, math.sqrt(1000000 / math.max(volume, 100))))
3 MODIFIED RSI CALCULATION
EMARSI uses a specially formulated RSI calculation that works with an adaptive base value to maintain consistency across different price ranges:
// Adaptive RSI Base based on price levels to improve flow
adaptiveRsiBase = useAdaptiveScaling ? rsiBase * scalingFactor : rsiBase
// Calculate RSI components with adaptivity
up = ta.rma(math.max(ta.change(rsiSourceInput), adaptiveRsiBase), emaSlowLength)
down = ta.rma(-math.min(ta.change(rsiSourceInput), adaptiveRsiBase), rsiLengthInput)
// Improved RSI calculation with value constraint
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
4 MOVING AVERAGE CROSSOVER SYSTEM
The indicator creates a smooth moving average of the RSI line, enabling a crossover system that generates trading signals:
// Calculate MA of mapped RSI
rsiMA = ma(mappedRsi, emaSlowLength, maTypeInput)
// Strategy entries
if ta.crossover(mappedRsi, rsiMA)
strategy.entry("RSI Long", strategy.long)
if ta.crossunder(mappedRsi, rsiMA)
strategy.entry("RSI Short", strategy.short)
5 VISUAL REFERENCE FRAMEWORK
The script includes visual guides that help interpret the RSI movement within the context of recent price action:
// Calculate pivot high and low
pQH = ta.highest(high, hlLen)
pQL = ta.lowest(low, hlLen)
median = (pQH + pQL) / 2
// Plotting
plot(pQH, "Pivot High", color=color.rgb(82, 228, 102, 90))
plot(pQL, "Pivot Low", color=color.rgb(231, 65, 65, 90))
med = plot(median, style=plot.style_steplinebr, linewidth=1, color=color.rgb(238, 101, 59, 90))
6 DYNAMIC COLOR SYSTEM
The indicator uses color fills to clearly visualize the relationship between the RSI and its moving average:
// Color fills based on RSI vs MA
colUp = mappedRsi > rsiMA ? input.color(color.rgb(128, 255, 0), '', group= 'RSI > EMA', inline= 'up') :
input.color(color.rgb(240, 9, 9, 95), '', group= 'RSI < EMA', inline= 'dn')
colDn = mappedRsi > rsiMA ? input.color(color.rgb(0, 230, 35, 95), '', group= 'RSI > EMA', inline= 'up') :
input.color(color.rgb(255, 47, 0), '', group= 'RSI < EMA', inline= 'dn')
fill(rsiPlot, emarsi, mappedRsi > rsiMA ? pQH : rsiMA, mappedRsi > rsiMA ? rsiMA : pQL, colUp, colDn)
7 REAL TIME PARAMETER MONITORING
A transparent information panel provides real-time feedback on the adaptive parameters being applied:
// Information display
var table infoPanel = table.new(position.top_right, 2, 3, bgcolor=color.rgb(0, 0, 0, 80))
if barstate.islast
table.cell(infoPanel, 0, 0, "Current Scaling Factor", text_color=color.white)
table.cell(infoPanel, 1, 0, str.tostring(scalingFactor, "#.###"), text_color=color.white)
table.cell(infoPanel, 0, 1, "Adaptive RSI Base", text_color=color.white)
table.cell(infoPanel, 1, 1, str.tostring(adaptiveRsiBase, "#.####"), text_color=color.white)
BENEFITS FOR TRADERS
INTUITIVE MOMENTUM VISUALIZATION
By mapping RSI directly onto the price chart, traders can immediately see the relationship between momentum and price without switching between different indicator windows.
ADAPTIVE TO ANY MARKET CONDITION
The three scaling methods (ATR-Based, Price-Based, and Volume-Based) ensure the indicator performs consistently across different market conditions, volatility regimes, and price levels.
PREVENTS EXTREME VALUES
The adaptive scaling system prevents the RSI from generating extreme values that exceed chart boundaries when trading low-priced securities or during high volatility periods.
CLEAR TRADING SIGNALS
The RSI and moving average crossover system provides clear entry signals that are visually reinforced through color changes, making it easy to identify potential trading opportunities.
SUITABLE FOR MULTIPLE TIMEFRAMES
The indicator works effectively across multiple timeframes, from intraday to daily charts, making it versatile for different trading styles and strategies.
TRANSPARENT PARAMETER ADJUSTMENT
The information panel provides real-time feedback on how the adaptive system is adjusting to current market conditions, helping traders understand why the indicator is behaving as it is.
CUSTOMIZABLE VISUALIZATION
Multiple visualization options including Bollinger Bands, different moving average types, and customizable colors allow traders to adapt the indicator to their personal preferences.
CONCLUSION
The EMARSI indicator represents a significant advancement in RSI visualization by directly mapping momentum onto price charts with adaptive scaling. This approach makes momentum shifts more intuitive to identify and helps prevent the scaling issues that commonly affect RSI-based indicators when applied to low-priced securities or volatile markets.
Liquidity Hunt SwiftEdgeThe "Liquidity Hunt Dashboard By SwiftEdge" indicator is designed to assist traders in identifying potential liquidity zones by placing a dynamic target line based on swing points and weighted liquidity. It leverages technical analysis tools such as SMA (Simple Moving Average), pivot points, and volume to predict market movements and provides daily statistics on hits and success rate. The target line updates automatically when the price hits it, adapting to the market trend (up, down, or neutral). A dashboard displays the current price, target level, prediction, and trend, making it easy to make informed trading decisions.
Features:
Target Line: A yellow dashed line marks the next expected liquidity level (up to approximately 20 pips away on 1m).
Prediction: Displays "Up (Chasing Sell Liquidity)," "Down (Chasing Buy Liquidity)," or "Neutral" based on trend and liquidity.
Daily Statistics: Tracks hits and success rate, resetting daily.
Trend Indicator: Shows market direction ("Up," "Down," or "Neutral") in the dashboard.
Dynamic Updates: The line moves to a new target level when the price hits the current target.
Recommended Settings for 1-Minute Timeframe:
For Indices (e.g., S&P 500):
Lookback Period: 180 (3 hours to capture more stable swing points).
Max Distance (%): 0.015 (approximately 15 pips, suitable for indices).
Cooldown Period: 5 (stabilizes after hits).
Line Duration: 60 (displays the line for 1 hour).
For Crypto (e.g., BTC/USD):
Lookback Period: 120 (2 hours to capture short-term swing points).
Max Distance (%): 0.024 (approximately 20 pips, suitable for volatile crypto markets).
Cooldown Period: 5.
Line Duration: 60.
For Forex (e.g., EUR/USD):
Lookback Period: 180 (3 hours for greater data density in less volatile markets).
Max Distance (%): 0.012 (approximately 10-12 pips, suitable for forex).
Cooldown Period: 5.
Line Duration: 60.
Guide for Higher Timeframes:
This indicator can be adapted for higher timeframes (e.g., 5m, 15m, 1H) by adjusting the settings to account for larger price movements and slower market dynamics. Follow these steps:
Select Your Timeframe: Switch your chart to the desired timeframe (e.g., 5m, 15m, or 1H).
Adjust Lookback Period: Increase the "Lookback Period" to cover a longer historical period. For example:
5m: Set to 360 (equivalent to 6 hours).
15m: Set to 480 (equivalent to 8 hours).
1H: Set to 720 (equivalent to 12 hours).
Adjust Max Distance (%): Higher timeframes require larger targets to account for bigger price swings. For example:
5m: Increase to 0.05 (approximately 50 pips).
15m: Increase to 0.1 (approximately 100 pips).
1H: Increase to 0.2 (approximately 200 pips).
Adjust Cooldown Period: On higher timeframes, you may want a longer cooldown to avoid frequent updates. For example:
5m: Set to 10.
15m: Set to 15.
1H: Set to 20.
Adjust Line Duration: Extend the duration the line is displayed to match the timeframe. For example:
5m: Set to 120 (equivalent to 10 hours).
15m: Set to 240 (equivalent to 60 hours).
1H: Set to 480 (equivalent to 20 days).
Monitor the Dashboard: The dashboard will still show the target level, prediction, and trend, but the values will now reflect the larger timeframe's dynamics.
Usage Instructions:
Set your chart to a 1-minute timeframe (or follow the higher timeframe guide).
Adjust the settings based on the market and timeframe (see recommendations above).
Monitor the dashboard for the current price, target level, and prediction.
Use the yellow line as a potential entry or exit level, and adjust your strategy based on the trend and statistics.
Notes:
This indicator is intended solely for educational and analytical purposes and should not be considered financial advice.
Test the indicator on a demo account before using it with real funds.
The indicator complies with TradingView guidelines by not providing trading advice, automated trading signals, or guarantees of profit.
TEMA OBOS Strategy PakunTEMA OBOS Strategy
Overview
This strategy combines a trend-following approach using the Triple Exponential Moving Average (TEMA) with Overbought/Oversold (OBOS) indicator filtering.
By utilizing TEMA crossovers to determine trend direction and OBOS as a filter, it aims to improve entry precision.
This strategy can be applied to markets such as Forex, Stocks, and Crypto, and is particularly designed for mid-term timeframes (5-minute to 1-hour charts).
Strategy Objectives
Identify trend direction using TEMA
Use OBOS to filter out overbought/oversold conditions
Implement ATR-based dynamic risk management
Key Features
1. Trend Analysis Using TEMA
Uses crossover of short-term EMA (ema3) and long-term EMA (ema4) to determine entries.
ema4 acts as the primary trend filter.
2. Overbought/Oversold (OBOS) Filtering
Long Entry Condition: up > down (bullish trend confirmed)
Short Entry Condition: up < down (bearish trend confirmed)
Reduces unnecessary trades by filtering extreme market conditions.
3. ATR-Based Take Profit (TP) & Stop Loss (SL)
Adjustable ATR multiplier for TP/SL
Default settings:
TP = ATR × 5
SL = ATR × 2
Fully customizable risk parameters.
4. Customizable Parameters
TEMA Length (for trend calculation)
OBOS Length (for overbought/oversold detection)
Take Profit Multiplier
Stop Loss Multiplier
EMA Display (Enable/Disable TEMA lines)
Bar Color Change (Enable/Disable candle coloring)
Trading Rules
Long Entry (Buy Entry)
ema3 crosses above ema4 (Golden Cross)
OBOS indicator confirms up > down (bullish trend)
Execute a buy position
Short Entry (Sell Entry)
ema3 crosses below ema4 (Death Cross)
OBOS indicator confirms up < down (bearish trend)
Execute a sell position
Take Profit (TP)
Entry Price + (ATR × TP Multiplier) (Default: 5)
Stop Loss (SL)
Entry Price - (ATR × SL Multiplier) (Default: 2)
TP/SL settings are fully customizable to fine-tune risk management.
Risk Management Parameters
This strategy emphasizes proper position sizing and risk control to balance risk and return.
Trading Parameters & Considerations
Initial Account Balance: $7,000 (adjustable)
Base Currency: USD
Order Size: 10,000 USD
Pyramiding: 1
Trading Fees: $0.94 per trade
Long Position Margin: 50%
Short Position Margin: 50%
Total Trades (M5 Timeframe): 128
Deep Test Results (2024/11/01 - 2025/02/24)BTCUSD-5M
Total P&L:+1638.20USD
Max equity drawdown:694.78USD
Total trades:128
Profitable trades:44.53
Profit factor:1.45
These settings aim to protect capital while maintaining a balanced risk-reward approach.
Visual Support
TEMA Lines (Three EMAs)
Trend direction is indicated by color changes (Blue/Orange)
ema3 (short-term) and ema4 (long-term) crossover signals potential entries
OBOS Histogram
Green → Strong buying pressure
Red → Strong selling pressure
Blue → Possible trend reversal
Entry & Exit Markers
Blue Arrow → Long Entry Signal
Red Arrow → Short Entry Signal
Take Profit / Stop Loss levels displayed
Strategy Improvements & Uniqueness
This strategy is based on indicators developed by "l_lonthoff" and "jdmonto0", but has been significantly optimized for better entry accuracy, visual clarity, and risk management.
Enhanced Trend Identification with TEMA
Detects early trend reversals using ema3 & ema4 crossover
Reduces market noise for a smoother trend-following approach
Improved OBOS Filtering
Prevents excessive trading
Reduces unnecessary risk exposure
Dynamic Risk Management with ATR-Based TP/SL
Not a fixed value → TP/SL adjusts to market volatility
Fully customizable ATR multiplier settings
(Default: TP = ATR × 5, SL = ATR × 2)
Summary
The TEMA + OBOS Strategy is a simple yet powerful trading method that integrates trend analysis and oscillators.
TEMA for trend identification
OBOS for noise reduction & overbought/oversold filtering
ATR-based TP/SL settings for dynamic risk management
Before using this strategy, ensure thorough backtesting and demo trading to fine-tune parameters according to your trading style.
Bayesian TrendEnglish Description (primary)
1. Overview
This script implements a Naive Bayesian classifier to estimate the probability of an upcoming bullish, bearish, or neutral move. It combines multiple indicators—RSI, MACD histogram, EMA price difference in ATR units, ATR level vs. its average, and Volume vs. its average—to calculate likelihoods for each market direction. Each indicator is “binned” (categorized into discrete zones) and assigned conditional probabilities for bullish/bearish/neutral scenarios. The script then normalizes these probabilities and paints bars in green if bullish is most likely, red if bearish is most likely, or blue if neutral is most likely. A small table is also displayed in the top-right corner of the chart, showing real-time probabilities.
2. How it works
Indicator Calculations: The script calculates RSI, MACD (line and histogram), EMA, ATR, and Volume metrics.
Binning: Each metric is converted into a discrete category (e.g., low, medium, high). For example, RSI < 30 is binned as “low,” while RSI > 70 is binned as “high.”
Conditional Probabilities: User-defined tables specify the conditional probabilities of each bin under three hypotheses (Up, Down, Neutral).
Naive Bayesian Formula: The script multiplies the relevant conditional probabilities, normalizes them, and derives the final probabilities (Up, Down, or Neutral).
Visualization:
Bar Colors: Bars are green when the Up probability exceeds 50%, red for Down, and blue otherwise.
Table: Displays numeric probabilities of Up, Down, and Neutral in percentage terms.
3. How to use it
Add the script to your chart.
Observe the colored bars:
Green suggests a higher probability for bullish movement.
Red suggests a higher probability for bearish movement.
Blue indicates a higher probability of sideways or uncertain conditions.
Check the table in the top-right corner to see exact probabilities (Up/Down/Neutral).
Use the input settings to adjust thresholds (RSI, MACD, Volume, etc.), define alert conditions (e.g., when Up probability crosses 50%), and decide whether to trigger alerts on bar close or in real-time.
4. Originality and usefulness
Originality: This script uniquely applies a Naive Bayesian approach to a blend of classic and volume-based indicators. It demonstrates how different indicator “zones” can be combined to produce probabilistic insights.
Usefulness: Traders can interpret the probability breakdown to gauge the script’s bias. Unlike single indicators, this approach synthesizes several signals, potentially offering a more holistic perspective on market conditions.
5. Limitations
The conditional probabilities are manually assigned and may not reflect actual market behavior across all instruments or timeframes.
Results depend on the user’s choice of thresholds and indicator settings.
Like any indicator, past performance does not guarantee future results. Always confirm signals with additional analysis.
6. Disclaimer
This script is intended for educational and informational purposes only. It does not constitute financial advice. Trading involves significant risk, and you should make decisions based on your own analysis. Neither the script’s author nor TradingView is liable for any financial losses.
Русское описание (Russian translation, optional)
Этот индикатор реализует наивный Байесовский классификатор для оценки вероятности предстоящего роста (Up), падения (Down) или бокового движения (Neutral). Он комбинирует несколько индикаторов—RSI, гистограмму MACD, разницу цены и EMA в единицах ATR, уровень ATR относительно своего среднего значения и объём относительно своего среднего—чтобы вычислить вероятности для каждого направления рынка. Каждый индикатор делится на «зоны» (low, mid, high), которым приписаны условные вероятности для бычьего/медвежьего/нейтрального исхода. Скрипт нормирует эти вероятности и раскрашивает бары в зелёный, красный или синий цвет в зависимости от того, какая вероятность выше. Также в правом верхнем углу отображается таблица с текущими значениями вероятностей.
Inside/Outside Bar Direction Highlighter
Here’s a trading indicator in Pine Script (v6) that combines the essence of the Inside Bar, Outside Bar, and directional patterns inspired by TT3 Theory. This indicator highlights bars based on their classification as inside, outside, or directional and provides potential trade signals.
Inside Outside Indicator
Explanation:
Bar Classification:
Inside Bar: Current high is less than the previous high, and the low is greater than the previous low.
Outside Bar: Current high exceeds the previous high, and the low breaks below the previous low.
Up/Down Bars: Closing prices relative to the previous high/low.
Visual Highlights:
Bars are visually highlighted with colors for easy identification.
Trade Signals:
Long Signal: When the close crosses above the previous high and it's a directional up bar.
Short Signal: When the close crosses below the previous low and it's a directional down bar.
Customizable Inputs:
Colors for inside, outside, up, and down bars can be modified.
You can copy and paste this script into the Pine Editor on TradingView to see it in action. Adjust the logic to fit your trading strategy as needed.
You said:
summary of how to use this indicator without buy/sell signal
ChatGPT said:
ChatGPT
How to Use the Inside/Outside Bar Direction Highlighter Indicator (Without Buy/Sell Signals)
Understand the Bar Classifications:
Inside Bars: Highlighted in blue (default). These indicate periods of market consolidation. Look for potential breakouts in either direction.
Outside Bars: Highlighted in orange (default). These represent increased volatility, where both higher highs and lower lows are made. Watch for reversals or continuations based on broader trends.
Directional Up Bars: Highlighted in green (default). These occur when the current close is above the previous high, signaling bullish momentum.
Directional Down Bars: Highlighted in red (default). These occur when the current close is below the previous low, indicating bearish momentum.
Identify Key Patterns:
Use the highlighted bars to spot price action setups, such as:
Breakouts from inside bars.
Reversal signals following outside bars.
Continuation patterns when directional bars align with the trend.
Combine with Your Analysis:
Trend Analysis: Match bar classifications with trend direction on larger timeframes (e.g., daily, 4-hour).
Support/Resistance: Use inside and outside bars near key levels for confirmation or reversal signals.
Volume: Higher volume on directional bars strengthens the momentum signal.
Customize the Colors:
Adjust the bar highlight colors to fit your chart theme for better visibility.
No Automatic Signals:
This indicator doesn’t provide explicit buy/sell recommendations. Instead, use the visual highlights to make informed decisions based on your trading strategy.
By interpreting these bar patterns, you can better gauge market behavior and make more confident decisions without relying on preset signals.
Kalman PredictorThe **Kalman Predictor** indicator is a powerful tool designed for traders looking to enhance their market analysis by smoothing price data and projecting future price movements. This script implements a Kalman filter, a statistical method for noise reduction, to dynamically estimate price trends and velocity. Combined with ATR-based confidence bands, it provides actionable insights into potential price movement, while offering clear trend and momentum visualization.
---
#### **Key Features**:
1. **Kalman Filter Smoothing**:
- Dynamically estimates the current price state and velocity to filter out market noise.
- Projects three future price levels (`Next Bar`, `Next +2`, `Next +3`) based on velocity.
2. **Dynamic Confidence Bands**:
- Confidence bands are calculated using ATR (Average True Range) to reflect market volatility.
- Visualizes potential price deviation from projected levels.
3. **Trend Visualization**:
- Color-coded prediction dots:
- **Green**: Indicates an upward trend (positive velocity).
- **Red**: Indicates a downward trend (negative velocity).
- Dynamically updated label displaying the current trend and velocity value.
4. **User Customization**:
- Inputs to adjust the process and measurement noise for the Kalman filter (`q` and `r`).
- Configurable ATR multiplier for confidence bands.
- Toggleable trend label with adjustable positioning.
---
#### **How It Works**:
1. **Kalman Filter Core**:
- The Kalman filter continuously updates the estimated price state and velocity based on real-time price changes.
- Projections are based on the current price trend (velocity) and extend into the future (Next Bar, +2, +3).
2. **Confidence Bands**:
- Calculated using ATR to provide a dynamic range around the projected future prices.
- Indicates potential volatility and helps traders assess risk-reward scenarios.
3. **Trend Label**:
- Updates dynamically on the last bar to show:
- Current trend direction (Up/Down).
- Velocity value, providing insight into the expected magnitude of the price movement.
---
#### **How to Use**:
- **Trend Analysis**:
- Observe the direction and spacing of the prediction dots relative to current candles.
- Larger spacing indicates a potential strong move, while clustering suggests consolidation.
- **Risk Management**:
- Use the confidence bands to gauge potential price volatility and set stop-loss or take-profit levels accordingly.
- **Pullback Detection**:
- Look for flattening or clustering of dots during trends as a signal of potential pullbacks or reversals.
---
#### **Customizable Inputs**:
- **Kalman Filter Parameters**:
- `lookback`: Adjusts the smoothing window.
- `q`: Process noise (higher values make the filter more reactive to changes).
- `r`: Measurement noise (controls sensitivity to price deviations).
- **Confidence Bands**:
- `band_multiplier`: Multiplies ATR to define the range of confidence bands.
- **Visualization**:
- `show_label`: Option to toggle the trend label.
- `label_offset`: Adjusts the label’s distance from the price for better visibility.
---
#### **Examples of Use**:
- **Scalping**: Use on lower timeframes (e.g., 1-minute, 5-minute) to detect short-term price trends and reversals.
- **Swing Trading**: Identify pullbacks or continuations on higher timeframes (e.g., 4-hour, daily) by observing the prediction dots and confidence bands.
- **Risk Assessment**: Confidence bands help visualize potential price volatility, aiding in the placement of stops and targets.
---
#### **Notes for Traders**:
- The **Kalman Predictor** does not predict the future with certainty but provides a statistically informed estimate of price movement.
- Confidence bands are based on historical volatility and should be used as guidelines, not guarantees.
- Always combine this tool with other analysis techniques for optimal results.
---
This script is open-source, and the Kalman filter logic has been implemented uniquely to integrate noise reduction with dynamic confidence band visualization. If you find this indicator useful, feel free to share your feedback and experiences!
---
#### **Credits**:
This script was developed leveraging the statistical principles of Kalman filtering and is entirely original. It incorporates ATR for dynamic confidence band calculations to enhance trader usability and market adaptability.
lib_momentumLibrary "lib_momentum"
This library calculates the momentum, derived from a sample range of prior candles. Depending on set MomentumType it either deduces the momentum from the price, volume, or a product of both. If price/product are selected, you can choose from SampleType if only candle body, full range from high to low or a combination of both (body counts full, wicks half for each direction) should be used. Optional: You can choose to normalize the results, dividing each value by its average (normalization_ma_length, normalization_ma). This will allow comparison between different instruments. For the normalization Moving Average you can choose any currently supported in my lib_no_delay.
get_momentum(momentum_type, sample_type, sample_length, normalization_ma_length, normalization_ma)
Parameters:
momentum_type (series MomentumType) : select one of MomentumType. to sample the price, volume or a product of both
sample_type (series SampleType) : select one of SampleType. to sample the body, total range from high to low or a combination of both (body count full, wicks half for each direction)
sample_length (simple int) : how many candles should be sampled (including the current)
normalization_ma_length (simple int) : if you want to normalize results (momentum / momentum average) this sets the period for the average. (default = 0 => no normalization)
normalization_ma (simple MovingAverage enum from robbatt/lib_no_delay/9) : is the type of moving average to normalize / compare with
Returns: returns the current momentum where the total line is not just (up - down) but also sampled over the sample_length and can therefore be used as trend indicator. If up/down fail to reach total's level it's a sign of decreasing momentum, if up/down exceed total the trend it's a sign of increasing momentum.
TrigWave Suite [InvestorUnknown]The TrigWave Suite combines Sine-weighted, Cosine-weighted, and Hyperbolic Tangent moving averages (HTMA) with a Directional Movement System (DMS) and a Relative Strength System (RSS).
Hyperbolic Tangent Moving Average (HTMA)
The HTMA smooths the price by applying a hyperbolic tangent transformation to the difference between the price and a simple moving average. It also adjusts this value by multiplying it by a standard deviation to create a more stable signal.
// Function to calculate Hyperbolic Tangent
tanh(x) =>
e_x = math.exp(x)
e_neg_x = math.exp(-x)
(e_x - e_neg_x) / (e_x + e_neg_x)
// Function to calculate Hyperbolic Tangent Moving Average
htma(src, len, mul) =>
tanh_src = tanh((src - ta.sma(src, len)) * mul) * ta.stdev(src, len) + ta.sma(src, len)
htma = ta.sma(tanh_src, len)
Sine-Weighted Moving Average (SWMA)
The SWMA applies sine-based weights to historical prices. This gives more weight to the central data points, making it responsive yet less prone to noise.
// Function to calculate the Sine-Weighted Moving Average
f_Sine_Weighted_MA(series float src, simple int length) =>
var float sine_weights = array.new_float(0)
array.clear(sine_weights) // Clear the array before recalculating weights
for i = 0 to length - 1
weight = math.sin((math.pi * (i + 1)) / length)
array.push(sine_weights, weight)
// Normalize the weights
sum_weights = array.sum(sine_weights)
for i = 0 to length - 1
norm_weight = array.get(sine_weights, i) / sum_weights
array.set(sine_weights, i, norm_weight)
// Calculate Sine-Weighted Moving Average
swma = 0.0
if bar_index >= length
for i = 0 to length - 1
swma := swma + array.get(sine_weights, i) * src
swma
Cosine-Weighted Moving Average (CWMA)
The CWMA uses cosine-based weights for data points, which produces a more stable trend-following behavior, especially in low-volatility markets.
f_Cosine_Weighted_MA(series float src, simple int length) =>
var float cosine_weights = array.new_float(0)
array.clear(cosine_weights) // Clear the array before recalculating weights
for i = 0 to length - 1
weight = math.cos((math.pi * (i + 1)) / length) + 1 // Shift by adding 1
array.push(cosine_weights, weight)
// Normalize the weights
sum_weights = array.sum(cosine_weights)
for i = 0 to length - 1
norm_weight = array.get(cosine_weights, i) / sum_weights
array.set(cosine_weights, i, norm_weight)
// Calculate Cosine-Weighted Moving Average
cwma = 0.0
if bar_index >= length
for i = 0 to length - 1
cwma := cwma + array.get(cosine_weights, i) * src
cwma
Directional Movement System (DMS)
DMS is used to identify trend direction and strength based on directional movement. It uses ADX to gauge trend strength and combines +DI and -DI for directional bias.
// Function to calculate Directional Movement System
f_DMS(simple int dmi_len, simple int adx_len) =>
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, dmi_len)
plus = fixnan(100 * ta.rma(plusDM, dmi_len) / trur)
minus = fixnan(100 * ta.rma(minusDM, dmi_len) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adx_len)
dms_up = plus > minus and adx > minus
dms_down = plus < minus and adx > plus
dms_neutral = not (dms_up or dms_down)
signal = dms_up ? 1 : dms_down ? -1 : 0
Relative Strength System (RSS)
RSS employs RSI and an adjustable moving average type (SMA, EMA, or HMA) to evaluate whether the market is in a bullish or bearish state.
// Function to calculate Relative Strength System
f_RSS(rsi_src, rsi_len, ma_type, ma_len) =>
rsi = ta.rsi(rsi_src, rsi_len)
ma = switch ma_type
"SMA" => ta.sma(rsi, ma_len)
"EMA" => ta.ema(rsi, ma_len)
"HMA" => ta.hma(rsi, ma_len)
signal = (rsi > ma and rsi > 50) ? 1 : (rsi < ma and rsi < 50) ? -1 : 0
ATR Adjustments
To minimize false signals, the HTMA, SWMA, and CWMA signals are adjusted with an Average True Range (ATR) filter:
// Calculate ATR adjusted components for HTMA, CWMA and SWMA
float atr = ta.atr(atr_len)
float htma_up = htma + (atr * atr_mult)
float htma_dn = htma - (atr * atr_mult)
float swma_up = swma + (atr * atr_mult)
float swma_dn = swma - (atr * atr_mult)
float cwma_up = cwma + (atr * atr_mult)
float cwma_dn = cwma - (atr * atr_mult)
This adjustment allows for better adaptation to varying market volatility, making the signal more reliable.
Signals and Trend Calculation
The indicator generates a Trend Signal by aggregating the output from each component. Each component provides a directional signal that is combined to form a unified trend reading. The trend value is then converted into a long (1), short (-1), or neutral (0) state.
Backtesting Mode and Performance Metrics
The Backtesting Mode includes a performance metrics table that compares the Buy and Hold strategy with the TrigWave Suite strategy. Key statistics like Sharpe Ratio, Sortino Ratio, and Omega Ratio are displayed to help users assess performance. Note that due to labels and plotchar use, automatic scaling may not function ideally in backtest mode.
Alerts and Visualization
Trend Direction Alerts: Set up alerts for long and short signals
Color Bars and Gradient Option: Bars are colored based on the trend direction, with an optional gradient for smoother visual feedback.
Important Notes
Customization: Default settings are experimental and not intended for trading/investing purposes. Users are encouraged to adjust and calibrate the settings to optimize results according to their trading style.
Backtest Results Disclaimer: Please note that backtest results are not indicative of future performance, and no strategy guarantees success.
Breakout LevelsBreakout Levels Indicator
The Breakout Levels indicator is a tool designed to help traders identify potential breakout points based on a specified time range and market volatility. By combining user-defined time frames with Average True Range (ATR) calculations, it provides actionable entry and stop-loss levels for both upward and downward breakouts. Additionally, it includes risk management features to calculate appropriate position sizes based on your account capital and risk tolerance.
Key Features
Custom Time Range Selection: Define a specific period during which the indicator calculates the highest high and lowest low to establish breakout levels.
ATR-Based Calculations: Use the ATR to adjust entry and stop-loss levels according to market volatility.
Risk Management: Automatically calculate position sizes based on your account capital and desired risk per trade.
Indicator Inputs
Start Time : The beginning of the time range for calculating the highest high and lowest low.
End Time : The end of the time range.
Entry Multiplier: A factor that determines how far the entry level is from the breakout level, scaled by the ATR.
Stop-Loss Multiplier: A factor that determines the distance of the stop-loss from the entry level, scaled by the ATR.
Risk per Trade (%) : The percentage of your account capital you're willing to risk on each trade.
Account Capital : Your total trading capital used for position size calculations.
ATR Length : The number of periods over which the ATR is calculated.
Position Size Up / Down : Shows you Lot size to maintain no loss more than allowed percentage at that entry
Volumetric Volatility Blocks [UAlgo]The Volumetric Volatility Blocks indicator is designed to identify significant volatility blocks based on price and volume data. It utilizes a combination of the Average True Range (ATR) and Simple Moving Average (SMA) to determine the volatility level and identify periods of heightened market activity. The indicator highlights these volatility blocks, providing traders with visual cues for potential trading opportunities. It differentiates between bullish and bearish volatility by analyzing price movement and volume, offering a nuanced view of market sentiment. This tool is particularly useful for traders looking to capitalize on periods of high volatility and momentum shifts.
🔶 Key Features
Volatility Measurement Length: Controls the period used to calculate the ATR.
Smooth Length of Volatility: Defines the period for the SMA used to smooth the ATR.
Multiplier of SMA: Sets the minimum threshold for the ATR to be considered a "high volatility" block.
Show Last X Volatility Blocks: Determines how many of the most recent volatility blocks are displayed on the chart.
Mitigation Method: Choose between "Close" or "Wick" price to filter volatility blocks based on price action. This helps avoid highlighting blocks broken by the chosen price level.
Volume Info: Displaying the volume associated with each block.
Up/Down Block Color: Sets the color for bullish and bearish volatility blocks.
🔶 Usage
The Volumetric Volatility Blocks indicator visually represents periods of high volatility with blocks on the chart. Green blocks indicate bullish volatility, while red blocks indicate bearish volatility.
Bullish Volatility Blocks: When the ATR surpasses the smoothed ATR multiplied by the set multiplier, and the price closes higher than it opened, a bullish block is formed. These blocks are generally used to identify potential buying opportunities as they indicate upward momentum.
Bearish Volatility Blocks: Conversely, bearish blocks form under the same conditions, but when the price closes lower than it opened. These blocks can signal potential selling opportunities as they highlight downward momentum.
Volume Information: Each block can display volume data, providing insight into the strength of the market movement. The percentage shown on the block indicates the relative volume contribution of that block, helping traders assess the significance of the volatility.
The volume percentages in the Volumetric Volatility Blocks indicator are calculated based on the total volume of the most recent volatility blocks. For each of the most recent volatility blocks, the percentage of the total volume is calculated by dividing the block's volume by the total volume:
🔶 Disclaimer
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Multi-Timeframe Trend IndicatorMulti-Timeframe Trend Indicator
The “Multi-Timeframe Trend Indicator” is a versatile tool designed to help traders identify trends across multiple timeframes using Exponential Moving Averages (EMAs). This indicator is suitable for both novice and experienced traders. It allows users to customize the lengths of the short and long EMAs, providing a clear visualization of the trend direction (UP, DOWN, SIDE) for various intervals including 1 minute, 5 minutes, 15 minutes, 30 minutes, 1 hour, and 4 hours. The indicator offers extensive customization options, enabling adjustments for table position, colors, and more to suit individual trading preferences.
How the Calculation Works
The Multi-Timeframe Trend Indicator uses EMAs to calculate trends. EMAs give more weight to recent prices, making them responsive to new information. The short EMA, calculated over a shorter period, reacts quickly to price changes, while the long EMA, calculated over a longer period, smooths out fluctuations to show the overall trend.
For each timeframe, the indicator calculates both the short EMA and the long EMA. If the short EMA is above the long EMA, the trend is considered “UP”. If the short EMA is below the long EMA, the trend is “DOWN”. If the absolute difference between the short and long EMAs is within a user-defined threshold, the trend is classified as “SIDE” (sideways).
This calculation is repeated for multiple timeframes: 1 minute, 5 minutes, 15 minutes, 30 minutes, 1 hour, and 4 hours. The results are displayed in a table, providing a comprehensive view of the trend direction across different timeframes.
How the Code Works
Input Parameters: Users can input the lengths of the short and long EMAs and the threshold for identifying sideways trends. These inputs allow for a high degree of customization to match individual trading strategies.
Trend Calculation Function: The trend function calculates the trend direction based on the EMAs. It uses the math.abs function to find the absolute difference between the EMAs and determines if the trend is “UP”, “DOWN”, or “SIDE” based on the threshold.
Requesting Data for Multiple Timeframes: The script uses the request.security function to fetch price data and calculate the EMAs for different timeframes independently of the current chart timeframe. This ensures consistency in trend analysis regardless of the displayed timeframe.
Creating and Updating the Table: A table is created to display the trend directions for each timeframe. The table’s position and appearance can be customized. The trend data for each timeframe is color-coded (green for UP, red for DOWN, gray for SIDE) and displayed in the table.
Customization Options: Users can customize the colors, table position, and EMA lengths through the indicator settings, providing flexibility to adapt the indicator to their trading style.
Disclaimer
This indicator is for informational purposes only and should not be considered financial advice. It does not predict future price movements and does not guarantee accurate trend calculations, as market conditions can vary. Trading involves substantial risk and is not suitable for everyone. Always conduct your own research before making any trading decisions.
Perfect Order Alert USDJPY/BTCUSD/XAUUSDPerfect Order Alert USDJPY/BTCUSD/XAUUSD 日本語解説は下記
This indicator detects the perfect order of three moving averages and displays on the Panel in an easy-to-understand visual manner whether there is an uptrend, downtrend, or non-trend for each time leg.
This indicator detects perfect orders for the three currency pairs USDJPY/BTCUSD/XAUUSD on the 5-minute, 15-minute, 1-hour, and 4-hour time frames, and displays them on the Panel on the chart, with “▲” for up, “▼” for down, and “ー” for non-trend, so that you can quickly determine the trend. The panel is displayed on the chart.
In order to check for perfect orders without missing them, it is also possible to set up alerts that notify you of all the time frames and currency pairs as well.
Functions
Displaying 4H, 1H, 15M, 5M, up (▲), down (▼), other (-), of USDJPY/BTCUSD/XAUUSD on the panel.
*(By default, 20EMA, 75EMA, and 200EMA are hidden.)
Display position setting of the panel (You can choose from upper left, upper top, upper right, lower left, lower bottom, or lower right).
Panel color and text color change function
The moving average line can be hidden by default.
Moving average period change
Moving average color and thickness can be changed.
EMA/SMA switchable
Alert function - One alert can be set for each currency pair and time frame ▲▼, which is very useful.
Perfect Order Alert
You can use it even if you have a free account with only one alert setting.
To use the alert function, go to the Tradingview default alert settings, select “USDJPY/BTCUSD/XAUUSD” for the top item of conditions, and select “Call Alert() function” in the frame just below it!
_* Supplementary explanation: ____________
Please note that due to the limitation of the script, only 3 currency pairs and 4 time frames are displayed with 12 items (Panels for currency pairs other than USDJPY/BTCUSD/XAUUSD are also created, but they are indicators for other scripts, so if you are interested in other currency pairs, please use those. If you are interested in other currency pairs, please use them.)
Please note that we may change the functions or delete the indicator itself without prior notice.
Translated with DeepL.com (free version)
Reference image of the setting screenReference image of the setting screen
設定画面参考画像
3本の移動平均線のパーフェクトオーダーを検知し、時間足ごとに上昇トレンドか下降トレンドかノントレンドかを視覚的にわかりやすくPanelに表示するインジゲーターです。
このインジゲーターは、USDJPY/BTCUSD/XAUUSDの3通貨ペアの5分足、15分足、1時間足、4時間足のパーフェクトオーダーを検知して、チャートに表示されるPanelに、上昇は「▲」下降は「▼」ノントレンドは「ー」と、すぐに判断できる表示にしてあります。
パーフェクトオーダーを逃さずチェックできるように、それぞれの時間足や通貨ペアも全てを通知してくれるアラート設定が可能なのも特徴です。
機能紹介
・USDJPY/BTCUSD/XAUUSDの4H,1H,15M,5M,の上昇(▲),下降(▼),その他(-),をパネルに表示
※(デフォルトでは20EMA,75EMA,200EMAの3本で非表示にしてあります)
・パネルの表示位置設定(左上、上、右上、左下、下、右下、から選択できます。)
・パネルの色とテキスト色変更機能
・移動平均線表示非表示機能(デフォルトでは表示OFFにしてあります。)
・移動平均線期間変更
・移動平均線色と太さ変更
・EMA/SMA切り替え可能
・アラート機能ー1つのアラート設定で通貨ペアと時間足▲▼一つ一つを細かく教えてくれるので便利。
※パーフェクト オーダーアラート
無料アカウントで1つしかアラート設定できなくても使えます。
アラート機能はTradingviewデフォルトのアラート設定から、条件の一番上の項目を「USDJPY/BTCUSD/XAUUSD」選択、そのすぐ下の枠に「Alert()関数の呼び出し」を選択でOK!
_※ 補足説明____________
・スクリプトの制限の為、3通貨ペアと4つの時間足の12項目で表示させていますのでご了承ください
(USDJPY/BTCUSD/XAUUSD以外の通貨ペアのPanelも作成していますが別スクリプトのインジゲーターになりますので他の通貨ペアも興味がある方はそちらをお使いください)
・予告なしで機能の変更やインジゲーター自体の削除等行う事もあるかもなのでご了承ください。
DMI ForLoop [InvestorUnknown]Overview
This indicator utilizes the Directional Movement Index (DMI) combined with a for-loop to provide a robust trend analysis (ADX is not a part of this indicator).
Settings
DMI ForLoop Settings:
Start Length (a): The initial length for DMI calculation (inclusive).
End Length (b): The final length for DMI calculation (inclusive).
EMA Length (c): The length for the Exponential Moving Average applied to the DMI values, in order so smoothen the signal.
Signal Settings:
Signal Mode: Determines the mode of signal calculation. Options are "Fast", "Slow", "Thresholds Crossing", and "Fast Threshold". Default is "Fast".
1. Slow: is a simple crossing of the midline (0).
2. Fast: positive signal depends if the current "DMIema" is above "DMIema " or above 0.99, otherwise the signal is negative.
3. Thresholds Crossing: simple ta.crossover and ta.crossunder of the user defined threshold for Long and Short.
4. Fast Threshold: signal changes if the value of "DMIema" changes by more than user defined threshold against the current signal.
// Slow
dmicol1 = DMIema > 0 ? colup : coldn
// Fast
dmicol2 = DMIema > DMIema or DMIema > 0.99 ? colup : coldn
// Thresholds Crossing
var color dmicol3 = na
if ta.crossover(DMIema,longth)
dmicol3 := colup
if ta.crossunder(DMIema,shortth)
dmicol3 := coldn
// Fast Threshold
var color dmicol4 = na
if (DMIema > DMIema + fastth)
dmicol4 := colup
if (DMIema < DMIema - fastth)
dmicol4 := coldn
color dmicol = na
if sigmode == "Slow"
dmicol := dmicol1
if sigmode == "Fast"
dmicol := dmicol2
if sigmode == "Thresholds Crossing"
dmicol := dmicol3
if sigmode == "Fast Threshold"
dmicol := dmicol4
else
na
Functionality
The DMI ForLoop indicator calculates an array of DMI values over a specified range of lengths, then averages these values and applies an EMA for smoothing. The result is a dynamic trend indicator that adapts to market conditions.
DMI Calculation:
The indicator iterates through lengths from Start Length to End Length, calculating the positive and negative directional movement (DM) for each period and calculates the average of all the signals at the end. A custom function version of the DMI is used here in order to use DMI with "series" inputs.
// Function to calculate an array of DMI values over a range of lengths
DMIArray(a, b, c) =>
// Initialize an array to store DMI values, with size based on the range (b - a + 1)
var dmiArray = array.new_float(b - a + 1, 0.0)
// Loop through each length from a to b
for x = 0 to (b - a)
// Calculate the smoothing factor alpha for the current length
alpha = 1.0 / (a + x)
// Initialize variables for positive and negative DM
float plus = na
float minus = na
// Calculate the up and down movements
up = ta.change(high)
down = -ta.change(low)
// Determine the positive DM (plusDM)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
// Determine the negative DM (minusDM)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
// Calculate the smoothed positive DM using either SMA or EMA
plus := na(plus ) ? ta.sma(plusDM, (a + x)) : alpha * plusDM + (1 - alpha) * nz(plus )
// Calculate the smoothed negative DM using either SMA or EMA
minus := na(minus ) ? ta.sma(minusDM, (a + x)) : alpha * minusDM + (1 - alpha) * nz(minus )
// Determine the trend direction: 1 for positive trend, -1 for negative trend, 0 for no trend
trend = plus > minus ? 1 : plus < minus ? -1 : 0
// Store the trend value in the DMI array
array.set(dmiArray, x, trend)
// Calculate the average of the DMI array
dmiAvg = array.avg(dmiArray)
// Apply an EMA to the average DMI value
DMIema = ta.ema(dmiAvg, c)
// Return the DMI array, its average, and the EMA of the average
// Call the DMIArray function with the input parameters and assign the results to variables
= DMIArray(a, b, c)
This indicator is versatile and can be tailored to fit various trading/investing strategies by adjusting the input parameters and signal modes.






















